Emberveil sourcegame/2006Scape Server/src/main/java/org/apollo/util/StreamUtil.java
package org.apollo.util;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
/**
* Contains utility methods for {@link InputStream}s and {@link OutputStream}s.
*
* @author Graham
*/
public final class StreamUtil {
/**
* Reads a String from the specified {@link InputStream}.
*
* @param input The {@link InputStream}. Must not be {@code null}.
* @return The String. Will never be {@code null}. May be empty.
* @throws IOException If an error occurs when reading from the {@link InputStream}.
*/
public static String readString(InputStream input) throws IOException {
StringBuilder builder = new StringBuilder();
int character;
while ((character = input.read()) != -1 && character != '\0') {
builder.append((char) character);
}
return builder.toString();
}
/**
* Writes an ASCII String to the specified {@link OutputStream}.
*
* @param output The {@link OutputStream}. Must not be {@code null}.
* @param string The String. Must be ASCII. Must not be {@code null}.
* @throws IOException If an error occurs when writing to the {@link OutputStream}.
*/
public static void writeString(OutputStream output, String string) throws IOException {
for (char character : string.toCharArray()) {
output.write(character);
}
output.write('\0');
}
/**
* Default private constructor to prevent instantiation.
*/
private StreamUtil() {
}
}